function fn1(a, b, c) {
    return a + b + c;
}
console.log(fn1.length);    // 输出3
console.log(fn1.__proto__.length);  // 输出0
console.log(Function.length);   // 输出1
console.log(fn1.__proto__.constructor.length);  // 同样输出1

var fn2 = new Function('return 1+2+3');  // 注意参数类型必须为字符串形式
// 等同于
function fn2() {
    return 1 + 2 + 3;
}
// 带参数的函数写法
var fn3 = new Function('a', 'b', 'c', 'console.log("我是函数体");return a+b+c');  // 函数体语句之间用分号隔开
// 等同于
function fn3(a, b, c) {
    return a + b + c;
}

fn4(1, 2);

function fn4(a, b, c) {
    console.log(arguments.length);  // 输出2
    console.log(fn4.length);  // 输出3
    return a + b + c;
}
